﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HomeWork
{
    internal class Comment : Content, IValuable  // 继承IValuable接口，表示可评价实体
    {


        
        public CommentStatus Status { get; set; } = CommentStatus.Normal;  // 
        public IList<Appraise> Appraises { get; set; } // 多人点赞
        


        // 实现IValuable接口     
        public ValuableType Type => ValuableType.Comment; // 标记为“评论”类型
        public Guid AuthorId { get; init; }// 评论作者ID（需新增）
        public int LikeCount { get; set; } = 0; // 点赞数（替代LikeSystem的计数）
        public int DislikeCount { get; set; } = 0; // 点踩数                                                   
        public DateTime CreatedAt { get; init; } = DateTime.Now;// 创建时间（评论发布时间）

        // 评论状态（管理可用性）
        public enum CommentStatus
        {
            Normal,   // 正常显示
            Deleted,  // 已删除（逻辑删除，不展示）
            Pending   // 待审核（如敏感内容需审核后显示）
        }

        public override void Publish()
        {
            ValidateAuthorNotNull(); // 确保作者不为空
            // 发布评论逻辑（如保存到数据库）
            // 这里可以添加具体的发布实现
            
        }

        public Comment(string content, Guid authorId)
        {
            Body = content; // 触发set校验
            AuthorId = authorId; // 设置作者ID
            CreatedAt = DateTime.Now; // 默认赋值当前时间
        }
        public Comment()
        {

        }

    }
}
